package com.shrct.businessprocess.customerservice.events;

import com.shrct.businessprocess.customerservice.RCFaultReport;
import com.shrct.businessprocess.customerservice.RCFaultReportProduct;
import com.shrct.businessprocess.customerservice.RCFaultWorkItem;
import com.shrct.businessprocess.customerservice.RCTimeLevel;
import edu.fudan.mylang.pf.event.IEntityEventsListner;
import java.util.Date;
import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;

public interface RCFaultReportEventsListener extends IEntityEventsListner<RCFaultReport> {
  public abstract void processReport(final RCFaultReport entity, final Date time, final String comment);
  
  public abstract void assign(final RCFaultReport entity, final Procedure1<? super RCFaultWorkItem> preInit, final String comment, final Procedure1<? super RCFaultWorkItem> postProcess);
  
  public abstract void engineerReport(final RCFaultReport entity, final RCFaultWorkItem workItem, final String comment);
  
  public abstract void appendInfo(final RCFaultReport entity, final String comment);
  
  public abstract void requireRMA(final RCFaultReport entity, final String comment);
  
  public abstract void RMAPerformed(final RCFaultReport entity, final String comment);
  
  public abstract void repairPerformed(final RCFaultReport entity, final String comment);
  
  public abstract void upgrade2Level(final RCFaultReport entity, final RCTimeLevel level);
  
  public abstract void pend(final RCFaultReport entity, final String comment);
  
  public abstract void resume(final RCFaultReport entity, final String comment);
  
  public abstract void _delete(final RCFaultReport entity);
  
  public abstract void startDeviceRMA(final RCFaultReport entity, final RCFaultReportProduct device, final String comment);
  
  public abstract void finishDeviceRMA(final RCFaultReport entity, final RCFaultReportProduct device, final String comment);
}
